package com.itheima;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.function.Consumer;

public class ArrayListDemo {
    public static void main(String[] args) {
        //1.创建ArrayList集合
        //底层赋值了一个数组
        ArrayList<String> list = new ArrayList<String>();
        //2.往ArrayList集合中添加数据

        list.add("zhangsan");
        list.add(0, "lisi");
        list.add("lisi");
        list.add("zhaoliu");


        //获取数据
        String s = list.get(1);
        System.out.println(s);

        //修改数据
        list.set(0, "wangwu");

        //删除数据
        list.remove(1);

        System.out.println(list);
        System.out.println("---------------------集合的遍历方法-------------------");

        //1.for循环的形式
        for (int i = 0; i < list.size(); i++) {
            String obj = list.get(i);
            System.out.println(obj);
        }

        System.out.println("---------------------集合的遍历方法2-------------------");

        //2.增强for循环的形式
        for (String obj : list) {
            System.out.println(obj);
        }

        //3.迭代器的形式
        System.out.println("---------------------集合的遍历方法3-------------------");
        //获取集合的迭代器对象
        Iterator<String> iterator = list.iterator();
        while (iterator.hasNext()) {
            String next = iterator.next();
            System.out.println(next);
        }
        //4.Lambda表达式的方式
        System.out.println("---------------------集合的遍历方法4-------------------");
        //lambda表达式本质就是一个函数
        //Consumer<String> consumer = ;
        //list.forEach(str -> System.out.println(str));
        //list.forEach(System.out::println);

        list.forEach(new Consumer<String>() {
                         @Override
                         public void accept(String s) {
                             System.out.println(s);
                         }
                     });

        list.forEach(name->System.out.println(name));

        list.forEach(System.out::println);

    }
}
